package org.jypj.dev.service.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.jypj.dev.model.EmergeFile;
import org.jypj.dev.dao.IEmergeFileDao;
import org.jypj.dev.service.IEmergeFileService;
import org.jypj.dev.util.Page;
import org.jypj.dev.vo.EmergyUser;

@Service("emergeFileService")
public class EmergeFileServiceImpl implements IEmergeFileService {

	@Resource
	private IEmergeFileDao emergeFileDao;

	/**
	 * 保存 字段为空的不存防止覆盖存在默认值的字段
	 * 
	 * @param emergeFile
	 * @return 保存后的对象包括ID
	 */
	public int saveEmergeFileByField(EmergeFile emergeFile) {
		String uuid = UUID.randomUUID().toString().replace("-", "").trim();
		emergeFile.setId(uuid);
		return emergeFileDao.saveEmergeFileByField(emergeFile);
	}

	/**
	 * 保存 所有字段全都保存
	 * 
	 * @param emergeFile
	 * @return 保存后的对象包括ID
	 */
	public int saveEmergeFile(EmergeFile emergeFile) {
		String uuid = UUID.randomUUID().toString().replace("-", "").trim();
		emergeFile.setId(uuid);
		return emergeFileDao.saveEmergeFile(emergeFile);
	}

	/**
	 * 根据ID删除
	 * 
	 * @param id
	 *            主键ID
	 * @return 删除记录数
	 */
	public int deleteEmergeFileById(String id) {

		return emergeFileDao.deleteEmergeFileById(id);
	}

	/**
	 * 根据对象删除
	 * 
	 * @param id
	 *            主键ID
	 * @return
	 */
	public int deleteEmergeFileByObject(EmergeFile emergeFile) {

		return emergeFileDao.deleteEmergeFileByObject(emergeFile);
	}

	/**
	 * 更新 只更新值不为空的字段
	 * 
	 * @param emergeFile
	 * @return 保存后的对象包括ID
	 */
	public int updateEmergeFileByField(EmergeFile emergeFile) {

		return emergeFileDao.updateEmergeFileByField(emergeFile);
	}

	/**
	 * 更新 更新所有字段
	 * 
	 * @param emergeFile
	 * @return 保存后的对象包括ID
	 */
	public int updateEmergeFile(EmergeFile emergeFile) {

		return emergeFileDao.updateEmergeFile(emergeFile);
	}

	/**
	 * 按ID查询
	 * 
	 * @parm id 主键ID
	 * @return EmergeFile
	 */
	public EmergeFile selectEmergeFileById(String id) {

		return emergeFileDao.selectEmergeFileById(id);
	}

	/**
	 * 分页查询 包含条件
	 * 
	 * @param page
	 *            分页对象
	 * @param map
	 *            查询条件
	 * @return List<EmergeFile>
	 */
	public Page selectOnePageByMap(Page page, Map<String, Object> map) {
		List<EmergeFile> emergeFiles = emergeFileDao.selectOnePageByMap(page, map);
		if (emergeFiles != null && emergeFiles.size() > 0) {
			page.setResult(emergeFiles);
		} else {
			page.setResult(new ArrayList<EmergeFile>());
		}
		return page;
	}

	/**
	 * 分页查询 包含对象条件
	 * 
	 * @param page
	 *            分页对象
	 * @param emergeFile
	 *            查询条件
	 * @return Page
	 */
	public Page selectOnePageByEmergeFile(Page page, EmergeFile emergeFile) {
		List<EmergeFile> emergeFiles = emergeFileDao.selectOnePageByEmergeFile(page, emergeFile);
		if (emergeFiles != null && emergeFiles.size() > 0) {
			page.setResult(emergeFiles);
		} else {
			page.setResult(new ArrayList<EmergeFile>());
		}
		return page;
	}

	/**
	 * 按条件查询单个对象
	 * 
	 * @param map
	 *            查询条件
	 * @return EmergeFile
	 */
	public List<EmergyUser> selectAllEmergyUser(Map<String, Object> map) {

		return emergeFileDao.selectAllEmergyUser(map);
	}

	/**
	 * 按条件查询单个对象
	 * 
	 * @param map
	 *            查询条件
	 * @return EmergeFile
	 */
	public List<EmergyUser> selectAllEmergeFile(Map<String, Object> map) {
		
		
		return emergeFileDao.selectAllEmergeFile(map);
	}

	/**
	 * 
	 * 按条件查询全部的
	 * 
	 * @param map
	 *            查询条件
	 * @return List<EmergeFile>
	 */
	public List<EmergeFile> selectAllByMap(Map<String, Object> map) {
		return emergeFileDao.selectAllByMap(map);
	}

	/**
	 * 按条件查询全部的
	 * 
	 * @param map
	 *            查询条件
	 * @return List<EmergeFile>
	 */
	public List<EmergeFile> selectAllByEmergeFile(EmergeFile emergeFile) {

		return emergeFileDao.selectAllByEmergeFile(emergeFile);
	}

	/**
	 * 按条件查询单个对象
	 * 
	 * @param map
	 *            查询条件
	 * @return EmergeFile
	 */
	public EmergeFile selectObjectByMap(Map<String, Object> map) {

		return emergeFileDao.selectObjectByMap(map);
	}

	/**
	 * 按条件查询单个对象
	 * 
	 * @param map
	 *            查询条件
	 * @return EmergeFile
	 */
	public EmergeFile selectObjectByEmergeFile(EmergeFile emergeFile) {

		return emergeFileDao.selectObjectByEmergeFile(emergeFile);
	}
}